package com.romaremez.testuser.src.datautils;

import com.romaremez.testuser.src.questionanswer.Question;
import com.romaremez.testuser.src.userdata.User;
import com.romaremez.testuser.src.userdata.UserSession;

import java.io.*;
import java.util.List;
import java.util.Map;

/**
 * Загружает все базы данных(вопросы, пользователи и сессии)
 */
public class DataLoader {

    /**
     * reads from file <code>Object</code> of <code>QuestionList</code> type
     */
    public List<Question> readQuestionList() {
        List<Question> resultList = null;
        File source = new File("questions.csv");
        try {
            if (!source.exists()) {
                System.out.println("Вопросы не найдены, обратитесь к администратору");
                System.exit(-1);
            }
            ObjectInputStream reader = new ObjectInputStream(new FileInputStream(source));
                resultList = (List<Question>)reader.readObject();
        } catch (Exception e) {
            //TODO  обработать исключение
        }
        return resultList;
    }

    public Map<User, List<UserSession>> readDB() {
        File file = new File("DB.txt");
        if (!file.exists()) {
            System.out.println("База не найдена, обратитесь к администратору");
            System.exit(-2);
        }
        try (ObjectInputStream reader = new ObjectInputStream(new FileInputStream(file))) {
            System.out.println("DB loaded");
            return (Map<User, List<UserSession>>)reader.readObject();
        } catch (IOException | ClassNotFoundException e) {
            // todo handle exceptions
            e.printStackTrace();
        }
        return null;
    }
}
